//! # Machine Exception Program Counter
//!
//! mepc\[0\] 永远是 0，如果 IALIGN=32，则 mepc\[1:0\] 会被忽略（通过掩码），
//! 即便其值不为 0，也被视为 0。
//!
//! trap 到 M-mode 时，mepc 中的值为被中断的指令的虚拟地址，
//! 这一步由 riscv-core 硬件实现
//!

use crate::csrr;

pub fn read() -> usize {
    csrr!(mepc)
}

pub struct Cache {
    raw: usize,
}
impl Cache {
    pub fn as_ptr(&self) -> *mut u16 {
        self.raw as *mut u16
    }
}
